package rmi.billing.server;


import java.rmi.Remote;
import java.rmi.RemoteException;

import rmi.billing.domain.Bill;
import rmi.billing.domain.PriceSteps;
import rmi.billing.exceptions.InvalidPriceStepRemoteException;
import rmi.billing.exceptions.NegativeValuesRemoteException;
import rmi.billing.exceptions.PriceIntervallCollisionRemoteException;
import rmi.billing.exceptions.PriceStepNotExistsRemoteException;


/*
 * Interface for the BillingServerSecure Implementation
 */
public interface BillingServerSecure  extends Remote {
	public PriceSteps getPriceSteps()  throws RemoteException;
	public void createPriceStep(double startPrice, double endPrice, double fixedPrice, double variablePricePercent)  
			throws RemoteException,NegativeValuesRemoteException,InvalidPriceStepRemoteException,InvalidPriceStepRemoteException,PriceIntervallCollisionRemoteException;
	public void deletePriceStep(double startPrice, double endPrice) throws RemoteException,PriceStepNotExistsRemoteException;
	public void billAuction(String user, long auctionID, double price)  throws RemoteException;
	public Bill getBill(String user)  throws RemoteException;
}
